import java.util.Scanner;

public class Test {
    public static void main15(String[] args) {
        //求一个整数，在内存当中存储时，二进制1的个数。
        //使用按位相与（&）操作时会将十进制自动转化成二进制进行操作；
        //2.我们只能将其与1相与，如果得到1表示该整数的最后一位为1；
        //3使用右移运算符>>，每次向右移一位可将该整数最右的一位不断去除，从而判断有几个1
        Scanner scanner = new Scanner(System.in);
        System.out.printf("请输入一个整数：");
        int num = scanner.nextInt();
        int count = 0;

        while (num != 0) {

            if ((num & 1) == 1) {
                count++;
            }
            num = num >> 1;

        }

        System.out.printf("该整数的二进制一共有%d个1",count);
    }
    public static void main14(String[] args) {
        //求两个数的最大公约数
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入两个整数：");
        int a=sc.nextInt();
        int b=sc.nextInt();
        int c=0;
        c=a%b;
        while(c!=0){
            a=b;
            b=c;
            c=a%b;
        }
        System.out.println("最大公约数为"+b);
    }
    public static void main13(String[] args) {
        //计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值
        float i=0;
        int flag=1;//进行取反操作的根源
        float sum=0;//要把1单独赋值出来之后再进行取反+-操作
        for(i=1;i<=100;i++){ //分母
            sum+=1/i*flag;
            flag=-flag;//对sum的值进行取反 实现+-+-操作
        }
        System.out.println(sum);
    }
    public static void main12(String[] args) {
        //水仙花数
        //求出0～n之间的所有“水仙花数”并输出。(“水仙花数”是指一个三位数，其各位数字的立方和确好等于该数本身，
        // 如；153＝1^3＋5^3＋3^3，则153是一个“水仙花数“。）
        int i=0;
        int g=0,s=0,b=0;
        int sum=0;
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入一个数字n:");
        int n=sc.nextInt();
        for(i=0;i<=n;i++){
            g=i%10;//个位
            s=i/10%10;//十位
            b=i/100%10;//百位
            sum=g*g*g+s*s*s+b*b*b;
            if(i==sum){
                System.out.println(i+"是水仙花数");
            }else{
                System.out.println(i+"不是水仙花数");
            }
        }
    }
    public static void main11(String[] args) {
        //画X图形
        Scanner sc = new Scanner(System.in);
        while (sc.hasNextInt()) {
            int n = sc.nextInt();
            //外循环(相当于坐标x)：图形总共n行，我们就循环n次
            for (int i = 0; i < n; i++) {
                //内循环(相当于坐标y)结合上一行来看就是第i行第j个
                for (int j = 0; j < n; j++) {
                    //观察过坐标图不难发现*都处于【横纵坐标相等】或者【和等于n-1】时
                    if (i == j || (i + j) == n - 1) {
                        System.out.print("*");
                    } else {
                        System.out.print(" ");
                    }
                }
                //外循环完成一次，代表一行写完，此处换行进行下一次循环
                System.out.println();
            }
        }
    }
    public static void main10(String[] args) {
        //给定一个数字，判定其是否为素数
        //素数：除1和他本身外，不能被任何一个数整除
        System.out.println("请输入一个数字:");
        Scanner sc=new Scanner(System.in);
        int i=sc.nextInt();
        int j=0;
        for(j=2;j<=i;j++){
            if(i%j==0){
                System.out.println(i+"不是素数");
                break;
            }else {
                System.out.println(i+"是素数");
                break;
            }
        }
    }
    public static void main9(String[] args) {
        //数1-100的整数中出现多少个9
        int i=1;
        int g=0,s=0,b=0;
        int sign=0;//记录9的个数
        while(i<=100){
            g=i%10;//个位
            s=i/10%10;//十位
            b=i/100%10;//百位
            if(g==9){
                sign++;
                i++;
                continue;
            }else if(s==9){
                if(g==9){
                    sign+=2;
                    i++;
                    continue;
                }else{
                    sign++;
                    i++;
                    continue;
                }
            }else {
                i++;
                continue;
            }
        }
        System.out.println(sign);
    }
    public static void main8(String[] args) {
        //break continue示例
        //查找100-200内3的倍数
        int i=100;
        while(i<=200){
            if(i%3==0){
                System.out.println(i);
                i++;
            }else{
                i++;
                continue;
            }
        }
    }
    public static void main7(String[] args) {
        //do while循环示例
        //打印数字1-10
        int num = 1;
        do {
            System.out.println(num);
            num++;
        } while (num <= 10);
    }
    public static void main6(String[] args) {
        //for循环
        //求5的阶乘
        int i=1;
        int result=1;
        for(i=1;i<=5;i++){
            result*=i;
        }
        System.out.println(result);
    }
    public static void main5(String[] args) {
        //while循环
        //求5的阶乘
        //5！=1*2*3*4*5
        int i=1;
        int result=1;
        while(i<=5){
            result*=i;
            i++;
        }
        System.out.println(result);

        //死循环示例
        //while(true){
        //    System.out.println(1);
        //}
    }
    public static void main4(String[] args) {
        //选择执行语句switch示例
        //根据day的值输出星期
        int day=1;
        switch (day){
            case 1:{
                System.out.println("星期一");
                break;
            } case 2:{
                System.out.println("星期二");
                break;
            } case 3:{
                System.out.println("星期三");
                break;
            } case 4:{
                System.out.println("星期四");
                break;
            } case 5:{
                System.out.println("星期五");
                break;
            } case 6:{
                System.out.println("星期六");
                break;
            } case 7:{
                System.out.println("星期天");
                break;
            } default:{
                System.out.println("非法输入！");
                break;
            }
        }

    }
    public static void main3(String[] args) {
        //嵌套if示例
        int a=20;
        int b=10;
        if(a==10)
            if(b==10)
                System.out.println("haha");
            else
                System.out.println("hehe");
        //选择执行语句if示例
        /*int a=10;
        if(a<20){
            System.out.println("haha");*/

    }
    public static void main2(String[] args) {
        //顺序执行语句示例
        System.out.println("aaa");
        System.out.println("ccc");
        System.out.println("bbb");
    }
    public static void main1(String[] args) {
        //小练习 求出1-100之间所有能被3整除也能被5整除的数字
        //方法1
        int i=1;
        while(i<=100){
            if(i%3==0&&i%5==0){
                System.out.println(i);
                i++;
            }else {
                i++;
                continue;
            }
        }
    }
    //方法2 判断被15整除的余数是否为0
}
